Recently, the most frequently asked question on the Creeper Forum server plugin section group (group number 332359582) is: What server core should I choose? Can I use Folia? Should I use Oracle or Zulu? Should I use Spark or Timing for performance analysis? These types of questions are actually irrelevant.
After seeing these questions, I realized that as the cost of starting my world server decreases, more and more newcomers want to try starting a server. They want to make their server better, but they are focusing on the wrong things. A true server owner needs to focus on the content, balance, community, and players of the server. So, let me explain to you why you shouldn't focus too much on other things.
Server Core Selection#
Currently, the Java server cores on the market can be divided into the following categories:
Type | Name | Applicable Range |
---|---|---|
Vanilla | Vanilla | Official Minecraft server, cannot load plugins or mods |
Plugin Server | Bukkit, Spigot, Paper, PurPur, Pufferfish, Folia | Server that can only load server plugins, cannot load mods |
Mod Server | Forge, Fabric, SpongeForge | Server that can only load mods, cannot load server plugins |
Hybrid Server | CatServer, Mohist, Banner, Arclight | Server that can load both server plugins and mods |
Among them, the most controversial topic is whether I should use Folia. The question is obviously influenced by its reputation for being multi-threaded. However, let's reread the positioning of its server on the Folia official website:
Folia is designed to address the constant bottleneck of the Minecraft server running on a single thread causing performance issues. It is by no means a drop-in replacement for Paper.
After carefully considering this statement, do you still think you really need Folia? "It is by no means a drop-in replacement for Paper." succinctly points out that it is different from the Paper server in terms of gameplay experience, plugin compatibility, and stability. It also breaks many original features. Are you really willing to give up all of the above for the so-called ultimate performance?
Let's take a look at the recommended configuration by Folia:
What hardware will Folia run best on?
Ideally, at least 16 cores (not threads).
So I ask, does your server hardware configuration really meet the recommended requirements? How can you ensure that the performance is better than the traditional Paper server when it is below the recommended configuration?
JDK Distribution Selection#
JDK (Java Development Kit), Java Development Kit, is a suite provided for developers to use. JDK includes JRE (Java Runtime Environment), and JVM (Java Virtual Machine) is part of JRE. All Java programs run based on JVM.
Currently, the mainstream JDK distributions for Minecraft servers include: OpenJDK, Azul Zulu, GraalVM, Oracle JDK, etc.
Among them, I will take OpenJDK and Azul Zulu, the two most controversial distributions, as examples for testing. The test script is as follows:
Click to preview
#! /bin/bash
JVM_OPENJDK=openjdk-17.0.2
JVM_ZULU=zulu17.34.19-ca-jdk17.0.3-linux_x64
sudo rm -rf /home/server/jdks/test/logs*
for JVM_NAME in $JVM_OPENJDK $JVM_TEMURIN $JVM_SEMERU $JVM_ZULU $JVM_ZING; do
echo '========================================'
echo "Start testing $JVM_NAME"
echo '========================================'
sudo rm -rf /home/server/jdks/test/world
mkdir logs
sudo nice -n -20 /home/server/jdks/$JVM_NAME/bin/java \
-Xmx6G -Xms6G -Xlog:gc:logs/gc.log -Xlog:gc* \
-jar server.jar nogui | tee logs/full.log
chmod 777 -R /home/server/jdks/test/logs
mv -v /home/server/jdks/test/logs /home/server/jdks/test/logs-$JVM_NAME
echo '========================================'
echo "Finish testing $JVM_NAME"
echo '========================================'
done
The test results are as follows:
JDK | Chunky Time | Average Pause Time /ms | Average GC Interval /s |
---|---|---|---|
OpenJDK | 9'01'' | 50.6 | 8 |
Azul Zulu | 9'15'' | 53.4 | 7 |
It is not difficult to see that the two most controversial distributions have very similar test results. In actual use and experience, it is difficult to notice the difference.
Conclusion#
In conclusion, do not pay too much attention to issues such as your server core and JDK distribution. Instead, focus more on enriching and optimizing the game content. After all, what players really care about is the fun and experience of the game, not which technical solution you choose. I hope you can invest more time in building the content of your server and provide your players with more fun and memories.
This article is synchronized and updated to xLog by Mix Space
The original link is https://blog.rescueme.life/posts/develop/donot-pay-too-much-attention-to-server-core-and-JDK